console.log('Start');  // (1) 同步任务  
  
setTimeout(() => {  
    console.log('setTimeout 前');  // (4) 宏任务  
}, 3);  

setTimeout(() => {  
    console.log('setTimeout');  // (4) 宏任务  
}, 2); 

setTimeout(() => {  
    console.log('setTimeout 后');  // (4) 宏任务  
}, 1);  
  
Promise.resolve()  
    .then(() => {  
        console.log('Promise.then 1');  // (2) 微任务  
        Promise.resolve().then(() => {  
            console.log('Promise.then 2');  // (3) 微任务，在第一个微任务之后执行  
        });  
    });  
  
console.log('End');  // (5) 同步任务  
  
// 输出顺序：Start, End, Promise.then 1, Promise.then 2, setTimeout